Most communications networks are designed to convey multiple communications simultaneously over each individual communication path, for example, a radio frequency (RF) channel or physical connection, using some type of modulation. In recent years, an increasing demand has arisen for efficient and reliable digital data transfers which assure correct data transmissions at as great a data rate as possible. Forward error correction (FEC) codes have been used in some communications systems for this purpose.
Codes are essentially digital data sequences derived from message sequences and used to convey message information. In forward error correction (FEC), information may be encoded to provide the abilities of detection and/or correction of errors occurring in a transmission, for example resulting from a noisy channel. The receiver in a communication system can recover all the information in the codewords by itself and thus coding lends advantages to high speed communication systems and/or those requiring synchronous communications.
For block coding, as opposed to convolutional coding, an encoder divides the information to be sent into message blocks of length k. In binary block encoding, each message block is represented by a binary k-tuple u=(u1, u2, . . . , uk) called a “message,” thus there are 2k different possible messages altogether. The encoder transforms each message m independently into an n-tuple c=(c1, c2, . . . , cn) called a “codeword.” Therefore, there are 2k different possible codewords at the encoder output. The set of 2k codewords of length n is called a (n, k) “block code.”
Low Density Parity Check (LDPC) codes are a type of FEC block codes that that can be iteratively decoded. LDPC codewords are constructed using a number of simple parity-check relationships shared between the bits in a codeword. Various different decoding algorithms can be applied to decode LDPC codes but most obtain the greatest gain when applied iteratively.
Generally, the more decoding iterations applied to decode each LDPC codeword, the lower the codeword error rate given equal code rates. However, the number of decoding iterations that may be performed on each codeword may be limited by available time in high speed communication networks with restrictive decoding latency requirements. Further, the complexity and/or processing capabilities of a decoder may increase with the number of decoding iterations to be performed. Accordingly, it would be desirable to have a technique and/or system for decoding LDPC codes with a limited number of decoding iterations while maintaining an acceptable codeword error rate or bit error rate (BER).